current version 1.2 - 8th March 2023
version | date | comment |
---|---|---|
1.0 | 08/Jun/2021 | Original code |
1.1 | 27/Jan/2023 | subroutine HargreavesSamaniModified added |
1.2 | 08/Mar/2023 | etEnergyBalanceGround |
license: GNU GPL http://www.gnu.org/licenses/
Module to compute evapotranspiration
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=short), | public | :: | dtET |
time step computation [s] |
|||
type(grid_real), | public | :: | pe |
potential evaporation rate [m/s] |
|||
type(grid_real), | public | :: | pet |
potential evapotranspiration rate [m/s] |
|||
type(grid_real), | public | :: | pt |
potential transpiration rate [m/s] |
|||
integer(kind=short), | private, | parameter | :: | ENERGY_BALANCE | = | 6 | |
integer(kind=short), | private, | parameter | :: | ET_MODELS | = | 6 | |
integer(kind=short), | private, | parameter | :: | FAO56_PENMAN_MONTEITH | = | 5 | |
integer(kind=short), | private, | parameter | :: | HARGREAVES | = | 3 | |
integer(kind=short), | private, | parameter | :: | HARGREAVES_MOD | = | 4 | |
integer(kind=short), | private, | parameter | :: | PENMAN_MONTEITH | = | 1 | |
integer(kind=short), | private, | parameter | :: | PRIESTLEY_TAYLOR | = | 2 | |
logical, | private | :: | compute_hargreaves | = | .FALSE. | ||
integer(kind=short), | private | :: | dtGridKc | ||||
integer(kind=short), | private | :: | dtKc | = | 0 | ||
character(len=300), | private | :: | filenameKc | ||||
integer(kind=short), | private | :: | fileunitKc | ||||
integer(kind=short), | private | :: | interpolationMethodKc | ||||
type(grid_integer), | private | :: | kc_code_map |
map of crop coefficient code |
|||
type(grid_real), | private | :: | kc_map |
crop coefficient map |
|||
type(ObservationalNetwork), | private | :: | kc_stations |
pseudo station to read kc time series values |
|||
integer(kind=short), | private | :: | model |
model to compute ET |
|||
integer(kind=short), | private | :: | model_assignment |
method to assign computation 1 = one method for the entire domain, 2 = a map with model codes |
|||
type(grid_integer), | private | :: | model_map | ||||
integer(kind=short), | private | :: | model_vector(ET_MODELS) |
defines active models |
|||
type(DateTime), | private | :: | tNewKc | ||||
type(DateTime), | private | :: | tnewET | ||||
logical, | private | :: | useCropCoefficient | = | .FALSE. |
check properties for each ET model
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=short), | intent(in) | :: | model | |||
type(IniList), | intent(in) | :: | ini |
Initialize evapotranspiration computation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | inifile | |||
type(DateTime), | intent(in) | :: | time |
Compute potential evapotranspiration
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(DateTime), | intent(in) | :: | time |
Compute actual evapotranspiration from ground by solving energy balance Original code written by Chiara Corbari and Jacopo Martinelli
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | airTemp |
air temperature (°C) |
||
real(kind=float), | intent(in) | :: | netRad |
net radiawion (W/m2) |
||
real(kind=float), | intent(in) | :: | rh |
air relative humidity (0-100) |
||
real(kind=float), | intent(in) | :: | wind |
wind speed(m/s) |
||
real(kind=float), | intent(in) | :: | fc |
fractional coverage by vegetation (0-1) |
||
real(kind=float), | intent(in) | :: | z |
vegetation height (m) |
||
real(kind=float), | intent(in) | :: | elevation |
terrain elevation (m a.s.l.) |
||
real(kind=float), | intent(in) | :: | zws |
wind speed measurement heigth (m) |
||
real(kind=float), | intent(in) | :: | zrhum |
relative humidity measurement heigth (m) |
||
real(kind=float), | intent(in) | :: | lai |
leaf area index (m2/m2) |
||
real(kind=float), | intent(in) | :: | srmin |
minimum stomatal resistance |
||
real(kind=float), | intent(out) | :: | pt |
potential transpiration (from vegetation) (m/s) |
||
real(kind=float), | intent(out) | :: | pe |
potential evaporation (from water or saturated soil) (m/s) |
||
real(kind=float), | intent(out) | :: | pet |
potential evapotranspiration (m/s) |
Compute potential evapotranspiration with FAO56 Penman-Monteith model for a reference grass "A hypothetical reference crop with an assumed crop height of 0.12 m, a fixed surface resistance of 70 s m-1 and an albedo of 0.23."
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | airTemp |
air temperature [°C] |
||
real(kind=float), | intent(in) | :: | netRad |
net radiation [W/m2] |
||
real(kind=float), | intent(in) | :: | netRadFAO |
net radiation for reference vegetation, with albedo = 0.23 [W/m2] |
||
real(kind=float), | intent(in) | :: | rh |
air relative humidity [0-100] |
||
real(kind=float), | intent(in) | :: | wind |
wind speed [m/s] |
||
real(kind=float), | intent(in) | :: | fc |
fractional coverage by vegetation [0-1] |
||
real(kind=float), | intent(in) | :: | elevation |
terrain elevation [m a.s.l.] |
||
real(kind=float), | intent(in) | :: | zws |
wind speed measurement heigth [m] |
||
real(kind=float), | intent(in) | :: | zrhum |
relative humidity measurement heigth [m] |
||
real(kind=float), | intent(in) | :: | lai |
leaf area index [m2/m2] |
||
real(kind=float), | intent(out) | :: | pt |
potential transpiration (from vegetation) [m/s] |
||
real(kind=float), | intent(out) | :: | pe |
potential evaporation (from water or saturated soil) [m/s] |
||
real(kind=float), | intent(out) | :: | pet |
potential evapotranspiration [m/s] |
Compute potential evapotranspiration with Hargreaves Samani model at daily time scale
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(DateTime), | intent(in) | :: | time |
simulation time |
||
real(kind=float), | intent(in) | :: | Tavg |
average daily temperature [°C] |
||
real(kind=float), | intent(in) | :: | Tmax |
maximum daily temperature [°C] |
||
real(kind=float), | intent(in) | :: | Tmin |
minimum daily temperature [°C] |
||
real(kind=float), | intent(in) | :: | etRad |
extra terrestrial solar radiation [mm/day] |
||
real(kind=float), | intent(out) | :: | pet |
potential evapotranspiration [m/s] |
Compute potential evapotranspiration at daily time scale with Hargreaves Samani model modified by Ravazzani et al. (2012) to include an elevation correction factor
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(DateTime), | intent(in) | :: | time |
simulation time |
||
real(kind=float), | intent(in) | :: | Tavg |
average daily temperature [°C] |
||
real(kind=float), | intent(in) | :: | Tmax |
maximum daily temperature [°C] |
||
real(kind=float), | intent(in) | :: | Tmin |
minimum daily temperature [°C] |
||
real(kind=float), | intent(in) | :: | etRad |
extra terrestrial solar radiation [mm/day] |
||
real(kind=float), | intent(in) | :: | elevation |
elevation above sea level [m] |
||
real(kind=float), | intent(out) | :: | pet |
potential evapotranspiration [m/s] |
Compute potential evapotranspiration with Penman-Monteith model
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | airTemp |
air temperature [°C] |
||
real(kind=float), | intent(in) | :: | netRad |
net radiawion [W/m2] |
||
real(kind=float), | intent(in) | :: | rh |
air relative humidity [0-100] |
||
real(kind=float), | intent(in) | :: | wind |
wind speed [m/s] |
||
real(kind=float), | intent(in) | :: | fc |
fractional coverage by vegetation [0-1] |
||
real(kind=float), | intent(in) | :: | z |
vegetation height [m] |
||
real(kind=float), | intent(in) | :: | elevation |
terrain elevation [m a.s.l.] |
||
real(kind=float), | intent(in) | :: | zws |
wind speed measurement heigth [m] |
||
real(kind=float), | intent(in) | :: | zrhum |
relative humidity measurement heigth [m] |
||
real(kind=float), | intent(in) | :: | lai |
leaf area index [m2/m2] |
||
real(kind=float), | intent(in) | :: | srmin |
minimum stomatal resistance |
||
real(kind=float), | intent(out) | :: | pt |
potential transpiration (from vegetation) [m/s] |
||
real(kind=float), | intent(out) | :: | pe |
potential evaporation (from water or saturated soil) [m/s] |
||
real(kind=float), | intent(out) | :: | pet |
potential evapotranspiration [m/s] |
Compute potential evapotranspiration with Priestley-Taylor model
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | airTemp |
air temperature [°C] |
||
real(kind=float), | intent(in) | :: | netRad |
net radiawion [W/m2] |
||
real(kind=float), | intent(in) | :: | fc |
fractional coverage by vegetation [0-1] |
||
real(kind=float), | intent(in) | :: | elevation |
terrain elevation [m a.s.l.] |
||
real(kind=float), | intent(out) | :: | pt |
potential transpiration (from vegetation) [m/s] |
||
real(kind=float), | intent(out) | :: | pe |
potential evaporation (from water or saturated soil) [m/s] |
||
real(kind=float), | intent(out) | :: | pet |
potential evapotranspiration [m/s] |